package nowcoder;
/**
 * 23292-字符串转成整数
 * https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&&tqId=11202&rp=6&ru=/activity/oj&qru=/ta/coding-interviews/question-ranking
 */
public class Day06_2 {
    // 不能使用字符串转化为整数的库函数
    public int StrToInt(String str) {
        if(str == null) {
            return 0;
        }

        int ret = 0;
        boolean isZhengShu = true;
        // 先判断第一个字母，允许出现+/-
        char c0 = str.charAt(0);
        if(Character.isDigit(c0)){
            if(c0 == '0'){
                return 0;
            }else{
                ret = c0 - '0';
            }
        }else{
            if(c0 == '-'){
                isZhengShu = false;
            }else if(c0 == '+'){
                // 啥也不干，不需要拼接
            }else{
                return 0;
            }
        }

        // 123456
        for (int i = 1; i < str.length(); i++) {
            char c = str.charAt(i);
            if(Character.isDigit(c)){
                int num = c - '0';
                ret = ret * 10 + num;
            }else{
                return 0;
            }
        }
        return isZhengShu ? ret : (0 - ret);
    }
}
